package com.cmc.cloud.cmclink.doc.vo.bkgtarriffnovo;

import com.cmc.cloud.cmclink.doc.rpcservice.vo.BkpNameBaseVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * {table.classComment}Response VO
 * 
 * @author codegen
 */
@Schema(description = "管理后台 - 订舱公布价约号 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class BkgTarriffNoRespVO extends BkpNameBaseVo {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27966")
    private Long id;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "操作时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @Schema(description = "操作人", requiredMode = Schema.RequiredMode.REQUIRED)
    private String updater;

    @Schema(description = "订舱人代码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "订舱人代码不能为空")
    @Length(max = 50,message = "订舱人代码支持最大长度{max}")
    private String bkpCode;

    @Schema(description = "公布价约号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "公布价约号不能为空")
    @Length(max = 30, message = "公布价约号支持最大长度{max}")
    private String bookingTarriff;

    @Schema(description = "是否启用", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否启用不能为空")
    private Boolean enable;

    /**
     * 订舱协议编号
     */
    @Schema(description = "订舱协议编号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "订舱协议编号不能为空")
    @Length(max = 50, message = "公布价约号支持最大长度{max}")
    private String bookingAgreementNo;


    /**
     * 可订舱港口
     */
    @Schema(description = "可订舱港口", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "可订舱港口不能为空")
    @Length(max = 50, message = "可订舱港口支持最大长度{max}")
    private String pols;

    /**
     * 生效时间
     */
    @Schema(description = "生效时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "生效时间不能为空")
    private Date effectiveDate;

    /**
     * 失效时间
     */
    @Schema(description = "失效时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "失效时间不能为空")
    private Date expirationDate;

}
